﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using SOAPServices.Persistencia;
using SOAPServices.Dominio;

namespace SOAPServices
{
    public class Loguins : ILoguins
    {
        private LoguinDAO loguinDAO = null;
        private LoguinDAO LoguinDAO
        {
            get
            {
                if (loguinDAO == null)
                    loguinDAO = new LoguinDAO();
                return loguinDAO;
            }
        }

        private UsuarioDAO usuarioDAO = null;
        private UsuarioDAO UsuarioDAO
        {
            get
            {
                if (usuarioDAO == null)
                    usuarioDAO = new UsuarioDAO();
                return usuarioDAO;
            }
        }

        public Dominio.Loguin CrearLoguin(int codusuario, string usuario, string password, string tipo)
        {
            Usuario codusuarioExistente = UsuarioDAO.Obtener(codusuario);
            Loguin loguinAcrear = new Loguin()

            {
                CodUsuario = codusuarioExistente.Codigo,
                Usuario = usuario,
                Password = password,
                Tipo = tipo
            };
            return LoguinDAO.Crear(loguinAcrear);
        }

        public Dominio.Loguin ObtenerLoguin(int codigo)
        {
            return LoguinDAO.Obtener(codigo);
        }


        public Dominio.Loguin ModificarLoguin(int codusuario, string usuario, string password, string tipo, int codigo)
        {
            Usuario codusuarioExistente = usuarioDAO.Obtener(codusuario);
            Dominio.Loguin loguinAModificar = new Dominio.Loguin
            {
                CodUsuario = codusuarioExistente.Codigo,
                Usuario = usuario,
                Password = password,
                Tipo = tipo,
                Codigo = codigo
            };
            return LoguinDAO.Modificar(loguinAModificar);
        }

        public void EliminarLoguin(int codigo)
        {
            Loguin loguinEsistente = LoguinDAO.Obtener(codigo);
            LoguinDAO.Eliminar(loguinEsistente);
        }

        public List<Dominio.Loguin> ListarLoguin()
        {
            return LoguinDAO.ListarTodos().ToList();
        }
    }
}
